package com;

/**
 * https://introcs.cs.princeton.edu/java/data/
 */
public interface UF {
    /**
     * 再p和q之间添加一条连接
     *
     * @param p
     * @param q
     */
    void union(int p, int q);

    /**
     * p(0-N-1)所在分量的标识符
     * @param p
     * @return
     */
    int find(int p);

    /**
     * 如果p和q存在于同一个分量中，则返回true
     * @param p
     * @param q
     * @return
     */
    boolean connected(int p, int q);

    /**
     * 连通分量的数量
     * @return
     */
    int count();
}
